package genetica.cromosomas.evaluadores;

import genetica.cromosomas.fenotipos.Fenotipo;
import genetica.cromosomas.fenotipos.FenotipoFunciones;

import java.util.ArrayList;

public class evaluadorFuncionA extends EvaluadorFuncion {



	@Override
	public Double getFunctionValue(ArrayList<Fenotipo> fenotipo) {
		if ((fenotipo.size() < 0) || !(fenotipo.get(0) instanceof FenotipoFunciones)){
			return null;
		}
		Double fen = ((FenotipoFunciones) fenotipo.get(0)).getFenotipo();
		double result = 20 + Math.E - 20*Math.exp(-0.2*Math.abs(fen)) - Math.exp(Math.cos(2*Math.PI*(fen)));
		return result;
	}
}
